Qbot银行木马2020年活动分析报告
概述
安天CERT基于安天态势感知系统监测发现,Qbot银行木马自2020年4月开始进入活跃状态。安天CERT从版本迭代、传播方式、规避手段等多个维度,对该木马的前导代码和载荷模块进行了全面分析与梳理。
Qbot银行木马也被称为Qakbot、Quakbot或Pinkslipbot,该木马家族自2008年首次出现至今已经运营长达12年之久,在此期间始终保持高度结构化、层次化且不断迭代更新插件以扩展其功能,主要被用于攻击全球各地的政府和企业,窃取用户数据和银行信息相关凭证。
Qbot银行木马主要通过垃圾邮件的方式进行传播,邮件附件通常为OFFICE宏文档或者VBS脚本,邮件内容主旨为诱使用户执行该程序。与此同时,多个攻击组织实施过该木马的分发,例如,Emotet家族的运营组织在2018年开始分发该木马,TA551黑客组织在2021年1月开始分发该木马。
安天CERT发现该木马在TTP(战术、技术&程序)中以多种方式实现对抗杀毒软件以及防火墙设备。安天智甲终端防御系统采取针对性措施,能够有效防御该银行木马威胁。
图 1-1 针对样本及其载荷进行查杀
图 1-2 样本运行后有效拦截
由于原文过长,公众号所发布版本为简要报告。事件对应的ATT&CK映射图谱、防护建议、样本详细分析等,可点击阅读原文查看完整版报告。
活动分析
通过安天态势感知系统2020年监测到的数据发现:Qbot银行木马于4月份开始进入活跃状态,此后几个月持续流行。从传播方式来看,Qbot银行木马在2008年出现,主要通过服务器消息块(SMB)进行蠕虫传播,在2016年增加了利用浏览器漏洞工具包传播。此后主要通过垃圾邮件进行传播,2018年开始,Qbot银行木马也常被嵌入到Emotet木马中作为后续下载的窃密插件使用。2020年3月开始Qbot在垃圾邮件中也会使用诱饵URL链接的方式来直接或者间接下载载荷。2020年12月,安天CERT发现其有效载荷从exe程序变为dll程序。2021年开始,安天监测到Qbot银行木马被嵌入TA551黑客组织的网络活动中分发使用。随着近几年具备“低成本、高破坏、高收益”特点的勒索软件广泛流行,Qbot银行木马从2020年4月开始也尝试下发不同的勒索软件,实现“窃密+勒索”的运营模式。
图 2-1 Qbot银行木马演变时间轴
样本分析
3.1 荷载下载方式分析
Qbot银行木马主要采用两种载荷下载方式:OFFICE文档宏病毒下载、VBS脚本下载。攻击者前期常利用含有恶意宏文档附件的钓鱼邮件作为攻击入口,诱导受害者启用宏,从而执行恶意宏代码并下载后续载荷。从2020年4月开始,攻击者传播的垃圾邮件不再使用带有宏的恶意文档,而是指向压缩文件的URL,该文件中包含用VBS编写的下载脚本。
攻击者通过制作以Windows Defender防病毒警报为主题的文档,结合多家知名安全厂商图标,提升攻击目标对该文档的信任,并在文档中进一步引导目标点击“启用内容”按钮,实现宏代码的运行。
图 3-1 伪造Windows Defender的防病毒文档附件
攻击者在2020年12月新攻击活动中放弃使用exe文件作为下载后续有效载荷,转而使用dll文件作为后续载荷。本次宏病毒利用了Excel 4.0宏在Excel文档中的存储方式,并结合了字体颜色、工作表隐藏和列隐藏等技巧隐藏Excel 4.0宏代码。
因为伪造的DocuSign图片单元格名称框被设置成了Auto_Open,所以受害者在打开此表格并执行宏后,此表格会自动将表格中的内容当成Excel 4.0宏执行。
图 3-2 自动执行Excel 4.0宏
此次宏病毒还利用了工作表隐藏、列隐藏和字体颜色等技巧。查看方式为将隐藏的列显示,字体颜色改为黑体,即能看到在Files和Flors工作表中隐藏的宏代码。
图 3-3 Files工作表中宏代码
为逃避沙箱检测,VBS文件在有效载荷末尾填充大量NULL字节,总大小超过35MB,并且脚本中调用Sleep函数延迟执行时间。
图 3-4 VBS文件
3.2 Qbot银行木马载荷分析
Qbot运营团队频繁更新版本,通常会在几个小版本后迎来一个大版本的更新,每次更新都会增加一些功能。安天CERT从2020年至今陆续捕获到海量Qbot样本,对每个样本进行分析发现,Qbot的开发人员在每次更新完版本后都会对样本的版本进行标签标注,如下图所示可通过数据段对开发的主版本、次版本进行识别。截至2020年11月末,Qbot运营团队的有效载荷都是exe文件格式,2020年12月之后Qbot运营团队的有效载荷改成dll文件格式。
在发本次报告之前,分析的exe文件格式最新载荷主payload版本为325/37,次payload版本为325/43。
安天CERT在2020年11月末开始陆续捕获到Qbot的有效载荷变为dll文件,最新的dll文件格式版本payload为401/78。
图 3-6 dll文件格式版本payload
3.2.1 载荷版本梳理
主版本 | 次版本 | Payload次版本 | 时间戳 | 描述 |
324 | 44 | 8 | 2020年1月22日 | 未见较大变化 |
324 | 353 | 53 | 2020年3月3日 | 未见较大变化 |
324 | 375 | 65 | 2020年3月13日 | 未见较大变化 |
324 | 379 | 70 | 2020年3月20日 | 增加hVNC模块 |
324 | 383 | 74 | 2020年4月1日 | 未见较大变化 |
324 | 385 | 75 | 2020年4月1日 | 未见较大变化 |
324 | 388 | 79 | 2020年4月8日 | 增加终止指定名称进程模块 |
324 | 390 | 126 | 2020年4月10日 | 未见较大变化 |
324 | 390 | 127 | 2020年4月10日 | 未见较大变化 |
324 | 393 | 136 | 2020年4月29日 | 移除JS Updater资源,调整JS Update命令 |
324 | 399 | 141 | 2020年5月7日 | 增加分析程序黑名单,增强反虚拟机能力 |
324 | 401 | 142 | 2020年5月28日 | 未见较大变化 |
325 | 5 | 7 | 2020年7月29日 | 增加新的反虚拟机技术 |
325 | 7 | 13 | 2020年7月31日 | 未见较大变化 |
325 | 8 | 14 | 2020年8月3日 | 未见较大变化 |
325 | 35 | 42 | 2020年8月7日 | 未见较大变化 |
325 | 37 | 43 | 2020年8月11日 | 此报告发布前的exe文件格式最新版本 |
401 | 29 | 2020年11月24日 | 最新载荷改为dll文件格式 | |
401 | 78 | 2020年12月11日 | 此报告发布前dll文件格式最新版本 |
3.3 样本执行流程
1、 样本被受害者手动执行时,会通过一些命令行参数,如“/C”、“/W”、“/I”、“/P”、“/Q”等执行相应的功能。
2、 样本由PowerShell下载执行时,不需要提供参数,样本直接进入非参数分支,具体流程如图:
图 3-7 样本执行流程
该样本中包含了大量的对抗分析技术,层层包裹阻碍分析人员逆向分析。样本第一层运用ShellCode技术规避检测;第二层是ShellCode解码后得到的样本核心PayLoad部分;第三层是根据不同参数执行不同操作;第四层主要是加载资源“307”,该资源提取后是一个动态链接库文件,主要功能是窃取凭证、连接远程服务器以及检测反病毒产品等。
点击“阅读全文”查看完整版报告